import java.io.IOException;
import java.util.Arrays;

public class Brute {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
//		Stopwatch timer = new Stopwatch();
//	    StdDraw.setXscale(0, 32768);
//        StdDraw.setYscale(0, 32768);
        
		String fileName = args[0];
		In in = new In(fileName);
		int N = in.readInt();
		
		Point[] points = new Point[N];
		
		for (int i = 0; i < N; i++) {
			int x = in.readInt();
			int y = in.readInt();
			Point p = new Point(x, y);
			points[i]=p;
		}
		
//		long count = 0;
//		long equalSlopes=0;
		Point p,q,r,s = null;
		for (int i = 0; i < points.length; i++) {
			for (int j = 0; j < points.length; j++) {
				if (i == j) {continue;}
				for (int k = 0; k < points.length; k++) {
					if (i == k || j == k) {	continue;}
					for (int l = 0; l < points.length; l++) {
						if (i == l || j == l || k == l) {continue;}
						p = points[i];
						q = points[j];
						r = points[k];
						s = points[l];
						double pq = p.slopeTo(q);
						double pr = p.slopeTo(r);
						double ps = p.slopeTo(s);
						if (pq == pr && pq == ps && pr == ps) {
							Point[] arr = new Point[]{p,q,r,s};
							Arrays.sort(arr);
							System.out.println(arr[0] + " -> " + arr[1] + " -> " + arr[2] + " -> " + arr[3]);
//							equalSlopes++;
//							p.drawTo(s);
						}
						
//						count++;
					}	
				}	
			}
		}
//		System.out.println("TOTAL: " + count  +" Equal slopes: " + equalSlopes);
//		System.out.println(timer.elapsedTime());
//		StdDraw.show(0);
	}
}
